package com.tansty.security.utils;

import com.fasterxml.jackson.core.JsonProcessingException;

import com.tansty.security.pojo.ResultVO;
import ma.glasnost.orika.impl.DefaultMapperFactory;

import java.text.SimpleDateFormat;
import java.util.Date;

/**
 * description:  <br>
 * date: 2021/7/23 13:57 <br>
 * author: ztz <br>
 * version: 1.0 <br>
 */

public class CommonUtil {
    /**
     *这里暂时先不考虑时间格式的转换
     * errCode
     * 200:正常返回
     * 300:因为一些特殊的原因而无法成功,如主机资源有限
     * 400:业务逻辑层面的错误
     * 500:系统错误
     */
    public static ResultVO ajaxReturn(Object data, Integer Code, String Msg) throws JsonProcessingException {
        return new ResultVO(data, Code, Msg);
    }

    /**
     * TODO
     * @Description
     * @Author ztz
     * @Date 2021/5/9 20:57
     * @param data :
     */
    public static ResultVO ajaxReturn(Object data) {
        return new ResultVO(data, 200, "成功");
    }

    /**
     * TODO
     * @Description 特殊情况, 没有数据需要返回  异常或成功
     * @Author ztz
     * @Date 2021/5/9 20:57
     * @param Code :
     * @param Msg :
     */
    public static ResultVO ajaxReturn(Integer Code,String Msg){
        return new ResultVO(null, Code, Msg);
    }


    /**
     * TODO
     * @Description 返回一个DefaultMapperFactory的build对象，主要用来实现entity与dto的转换
     * 使用举例：CommonUtil.getMapperFactory().getMapperFacade().map(实例对象，目标类.class)
     * 实际上build对象还有很多方法，可以根据百度学习
     * @Author ztz
     * @Date 2021/5/9 20:56
     * @return : ma.glasnost.orika.impl.DefaultMapperFactory
     */
    public static DefaultMapperFactory getMapperFactory(){
        return new DefaultMapperFactory.Builder().build();
    }

    /**
     * TODO
     * @Description 格式化date对象 返回格式: '2021-05-09 12:30:59'
     * @Author ztz
     * @Date 2021/5/9 20:59
     * @param time :
     * @return : java.lang.String
     */
    public static String getTime(Date time) {
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        return simpleDateFormat.format(time);
    }

}
